package com.jisf.driver.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.jisf.driver.filter.JwtAuthenticationTokenFilter;
import com.jisf.driver.utils.UserUtil;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Classname MyMetaObjectHandler
 * @Description TODO 字段自动填充
 * @Date 2022/4/21 16:18
 * @Created by jisf：【429627912@qq.com】
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    //在执行mybatisPlus的insert()时，为我们自动给某些字段填充值，这样的话，我们就不需要手动给insert()里的实体类赋值了
    @Override
    public void insertFill(MetaObject metaObject) {
        //其中方法参数中第一个是前面自动填充所对应的字段，第二个是要自动填充的值。第三个是指定实体类的对象
//        this.setFieldValByName("createTime", new Long(111), metaObject);
        this.setFieldValByName("createBy", UserUtil.userIdThreadLocal.get(), metaObject);
        this.setFieldValByName("createTime", new Date(), metaObject);
//        this.setFieldValByName("creatorId", new Long(111), metaObject);
//        this.setFieldValByName("gmtCreat", new Date(), metaObject);
//        this.setFieldValByName("availableFlag", true, metaObject);


    }

    //在执行mybatisPlus的update()时，为我们自动给某些字段填充值，这样的话，我们就不需要手动给update()里的实体类赋值了
    @Override
    public void updateFill(MetaObject metaObject) {
//        this.setFieldValByName("modifierId", new Long(111), metaObject);
        this.setFieldValByName("updateBy", UserUtil.userIdThreadLocal.get(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }

}
